#ifndef MEMORYGAME_H
#define MEMORYGAME_H
#include<QTimer>
#include<QTime>
#include <QWidget>
#include<qpainter.h>
#include<QKeyEvent>
#include <QLayout>
#include<QPixmap>
#include<QPushButton>
namespace Ui {
class memoryGame;
}

class memoryGame : public QWidget
{
    Q_OBJECT

public:
    void inPerson();//初始化人
    explicit memoryGame(QWidget *parent = nullptr);
    ~memoryGame();
    //画游戏界面,会被自动调用
    void paintEvent1(QPaintEvent *event);
    //创建碎片
    QRect*createFragment();
    QRect createSingleFragment();
    void fraMove();
    void isWall_hit();//看碎片有无碰到底部或者被人碰到，碰到后消失
    void isBombHit();
    void reset();
    QString selectItem();
    void setList(QString*a,int);//设置物品列表
    bool blsSame(QString a);
    void gameOver();//游戏结束
private slots:
    //让人动起来
    void personUpdate();
    void restartGame();//再次启动游戏
    void acceptSystem();//由物品管理系统跳转


    void on_backToHome_clicked();
signals:
    void gameToSys();
private:
    Ui::memoryGame *ui;
    QPainter painter;
    QRect Person;//小人
    int psize;//人大小
    QTimer*timer;//计时器
    bool blsRun;//是否开始
    bool blsOver;//是否结束
    int perMove;//人移动的方向
    QString pDisplay;//开始结束提示
    QRect*fragment;//记忆碎片
    int fsize;//碎片大小
    QRect bomb;//炸弹
    int bombfall;//炸弹掉落次数
    int score;//记录分数
    QString scoreLabel;
    int speed[5];//掉落速度
    int num=5;    //碎片个数
    QPushButton*startBtn;//开始游戏
    void  keyPressEvent(QKeyEvent*key);
    QString*example;//文件示例
    int itemCount;//物品数
    QString text[5];//碎片上的文字
    QFont*fra_font=new QFont[num];

};

#endif // MEMORYGAME_H
